package com.example.lottery.common.utils;

import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.digest.DigestUtil;
import cn.hutool.crypto.symmetric.AES;
import cn.hutool.crypto.symmetric.SymmetricAlgorithm;
import org.springframework.util.DigestUtils;

import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

//加密工具
public class EncryptUtils {
    //AES随机生成密钥 也可以自定义
    public static final byte[] KEY = "123456789abcdefg".getBytes(StandardCharsets.UTF_8);
    //sha-256 摘要加密
    /**
     * 需要把盐和密文都存入数据库中
     * @param content
     * @return
     */
    public static Map<String,String> EncryptSHA256(String content){
        String s = DigestUtil.sha256Hex(content);
        //生成随机盐
        String salt = UUIDUtil.create();
        //拼接
        String secret=s+salt;
        Map map=new HashMap();
        map.put("secret",secret);
        map.put("salt",salt);
        return map;
    }

    /**
     * 对称加密
     * @param content 明文
     * @return 存入数据库
     */

    //aes 对称加密
    public static String EncryptAES(String content){
        // 构建
        AES aes = SecureUtil.aes(KEY);
        //加密为16进制表示
        return aes.encryptHex(content);
    }

}
